US prevalence: 01/21 - 05/18 US socdist: 03/01 - 05/03
UK prevalence: 03/09 - 04/10 UK socdist: 03/01 - 03/31
GER prevalence: 01/01 - 04/25 GER socdist: 02/25 - 04/27
df_us_pers <- read_csv('timeseries_usa_county_march1_april_09.csv')
df_us_pers <- df_us_pers %>% select(countyfips, open, sci, extra, agree, stabil) %>%
mutate(stabil = -stabil) %>%
dplyr::rename(county_fips = countyfips,
pers_o = open,
pers_c = sci,
pers_e = extra,
pers_a = agree,
pers_n = stabil) %>%
distinct()
# read data
df_us_covid <- read_csv('USA_timeseries_prep_2005.csv')
# select and renamve variables
df_us_covid <- df_us_covid %>%
select(fips, date, rate) %>%
mutate(date = as.Date(date, "%d%b%Y")) %>%
rename(county_fips = fips,
rate_day = rate)
df_us_covid
NA
df_us_ctrl <- read.csv('controls_US.csv')
df_us_ctrl <- df_us_ctrl %>% select(-county_name) %>%
rename(county_fips = county)
df_us_ctrl
NA
socdist <- df_us_socdist %>% merge(df_us_socdist_fb, by = c("county_fips", "date"))
socdist[c('daily_distance_diff', 'daily_visitation_diff', 'socdist_tiles', 'socdist_single_tile')] %>%
cor(use = 'pairwise.complete')
daily_distance_diff daily_visitation_diff socdist_tiles socdist_single_tile
daily_distance_diff 1.0000000 0.1911424 0.3528837 -0.3157188
daily_visitation_diff 0.1911424 1.0000000 0.3964342 -0.3521691
socdist_tiles 0.3528837 0.3964342 1.0000000 -0.7583523
socdist_single_tile -0.3157188 -0.3521691 -0.7583523 1.0000000
# join data frames
df_us <- plyr::join_all(list(df_us_covid, df_us_socdist_fb),
by = c('county_fips', 'date'),
type = 'inner') %>%
plyr::join(df_us_ctrl, by='county_fips') %>%
plyr::join(df_us_pers, by='county_fips') %>%
arrange(county_fips, date)
# keep only counties with full data
fips_complete <- df_us %>%
group_by(county_fips) %>%
summarize(n = n()) %>%
filter(n==max(.$n)) %>%
.$county_fips
df_us <- df_us %>% filter(county_fips %in% fips_complete)
# create sequence of dates
date_sequence <- seq.Date(min(df_us$date),
max(df_us$date), 1)
# create data frame with time sequence
df_dates = tibble(date_sequence, 1:length(date_sequence))
names(df_dates) <- c('date', 'time')
# merge day index with gps data
df_us = df_us %>%
merge(df_dates, by='date') %>%
arrange(county_fips) %>%
as_tibble()
df_us
NA
# distributions of mean prevalence rates per county
df_us %>% group_by(county_fips) %>%
summarise(rate_day = mean(rate_day)) %>%
ggplot(aes(x=rate_day)) +
geom_histogram(color="black", fill="white", binwidth = 0.01) +
ggtitle('Distribution of mean prevalence rates by county')
# distribution of mean sd visit measue
df_us %>% group_by(county_fips) %>%
summarise(socdist_single_tile = mean(socdist_single_tile)) %>%
ggplot(aes(x=socdist_single_tile)) +
geom_histogram(color="black", fill="white", bins = 200) +
ggtitle('Distribution of mean single tile measute by county')
NA
NA
df_us %>% sample_n(20000) %>%
ggplot(aes(x=time, y=rate_day)) +
geom_point(aes(col=county_name, size=popdens)) +
geom_smooth(method="loess", se=T) +
theme(legend.position="none") +
ggtitle("Overall prevalence over time")
pers <- c('pers_o', 'pers_c', 'pers_e', 'pers_a', 'pers_n')
for (i in pers){
gg <- df_us %>%
mutate(prev_tail = cut(.[[i]],
breaks = c(-Inf, quantile(.[[i]], 0.05, na.rm=T),
quantile(.[[i]], 0.95, na.rm=T), Inf),
labels = c('lower tail', 'center', 'upper tail'))) %>%
filter(prev_tail != 'center') %>%
ggplot(aes(x=time, y=rate_day)) +
geom_point(aes(col=county_name, size=popdens)) +
geom_smooth(method="loess", se=T) +
facet_wrap(~prev_tail) +
theme(legend.position="none") +
ggtitle(i)
print(gg)
}
df_us_loess <- df_us %>%
mutate(weekday = format(date, '%u')) %>%
filter(!weekday %in% c('6','7')) %>%
split(.$county_fips) %>%
map(~ loess(socdist_single_tile ~ time, data = .)) %>%
map(predict, 1:max(df_us$time)) %>%
bind_rows() %>%
gather(key = 'county_fips', value = 'loess') %>%
group_by(county_fips) %>%
mutate(time = row_number())
df_us <- df_us %>% merge(df_us_loess, by=c('county_fips', 'time')) %>%
mutate(weekday = format(date, '%u')) %>%
mutate(socdist_single_tile_clean = ifelse(weekday %in% c('6','7'), loess,
socdist_single_tile)) %>%
arrange(county_fips, time) %>%
select(-weekday)
df_us <- df_us %>% drop_na() %>% mutate(time = time-1)
df_us %>% sample_n(10000) %>%
ggplot(aes(x=time, y=socdist_single_tile_clean)) +
geom_point(aes(col=county_name, size=popdens)) +
geom_smooth(method="loess", se=T) +
theme(legend.position="none") +
ggtitle("Overall social distancing (single tile) over time")
pers <- c('pers_o', 'pers_c', 'pers_e', 'pers_a', 'pers_n')
for (i in pers){
gg <- df_us %>%
mutate(dist_tail = cut(.[[i]],
breaks = c(-Inf, quantile(.[[i]], 0.05, na.rm = T),
quantile(.[[i]], 0.95, na.rm = T), Inf),
labels = c('lower tail', 'center', 'upper tail'))) %>%
filter(dist_tail != 'center') %>%
ggplot(aes(x=time, y=socdist_single_tile_clean)) +
geom_point(aes(col=county_name, size=popdens)) +
geom_smooth(method="loess", se=T) +
facet_wrap(~dist_tail) +
theme(legend.position="none") +
ggtitle(i)
print(gg)
}
df_us %>% group_by(time) %>%
summarize(socdist_var = var(socdist_single_tile)) %>%
ggplot(aes(x=time, y=socdist_var)) +
geom_line() +
ggtitle("Variance of social distancing index over time")
df_us %>% group_by(time) %>%
summarize(socdist_var = var(socdist_single_tile),
socdist_var_clean = var(socdist_single_tile_clean)) %>%
ggplot() +
#geom_line(aes(x=time, y=socdist_var)) +
geom_line(aes(x=time, y=socdist_var_clean)) +
ggtitle("Variance of smothed social distancing index over time")
df_us %>% select(-time, -date, -county_name) %>%
group_by(county_fips) %>%
summarize_if(is.numeric, mean) %>%
select(-county_fips) %>%
cor(use='pairwise.complete.obs') %>%
round(3)
rate_day socdist_tiles socdist_single_tile airport_distance republican medage
rate_day 1.000 -0.267 0.163 -0.104 -0.231 -0.106
socdist_tiles -0.267 1.000 -0.632 0.265 0.393 0.038
socdist_single_tile 0.163 -0.632 1.000 -0.158 -0.293 0.266
airport_distance -0.104 0.265 -0.158 1.000 0.117 0.019
republican -0.231 0.393 -0.293 0.117 1.000 0.135
medage -0.106 0.038 0.266 0.019 0.135 1.000
male -0.074 0.123 -0.060 0.186 0.161 -0.051
popdens 0.293 -0.397 0.307 -0.229 -0.370 -0.172
manufact -0.065 0.172 -0.190 -0.129 0.164 0.098
tourism 0.008 -0.120 0.137 0.081 -0.200 -0.090
academics 0.179 -0.514 0.364 -0.137 -0.451 -0.216
medinc 0.191 -0.503 0.314 -0.183 -0.193 -0.103
physician_pc -0.037 0.191 -0.153 -0.034 0.199 0.080
pers_o 0.124 -0.348 0.281 -0.084 -0.340 -0.036
pers_c 0.041 0.130 -0.229 -0.092 -0.043 -0.055
pers_e 0.049 -0.079 -0.036 -0.124 -0.080 -0.098
pers_a 0.072 0.103 -0.257 -0.100 -0.086 -0.072
pers_n -0.120 0.133 0.126 0.049 0.308 0.247
loess 0.175 -0.636 0.997 -0.170 -0.310 0.263
socdist_single_tile_clean 0.173 -0.633 0.997 -0.170 -0.309 0.265
male popdens manufact tourism academics medinc physician_pc pers_o pers_c
rate_day -0.074 0.293 -0.065 0.008 0.179 0.191 -0.037 0.124 0.041
socdist_tiles 0.123 -0.397 0.172 -0.120 -0.514 -0.503 0.191 -0.348 0.130
socdist_single_tile -0.060 0.307 -0.190 0.137 0.364 0.314 -0.153 0.281 -0.229
airport_distance 0.186 -0.229 -0.129 0.081 -0.137 -0.183 -0.034 -0.084 -0.092
republican 0.161 -0.370 0.164 -0.200 -0.451 -0.193 0.199 -0.340 -0.043
medage -0.051 -0.172 0.098 -0.090 -0.216 -0.103 0.080 -0.036 -0.055
male 1.000 -0.132 -0.073 -0.058 -0.177 0.000 0.172 -0.111 -0.096
popdens -0.132 1.000 -0.163 0.096 0.395 0.281 -0.137 0.303 -0.041
manufact -0.073 -0.163 1.000 -0.380 -0.387 -0.177 0.157 -0.391 0.067
tourism -0.058 0.096 -0.380 1.000 0.275 -0.041 -0.227 0.363 0.010
academics -0.177 0.395 -0.387 0.275 1.000 0.721 -0.367 0.458 -0.126
medinc 0.000 0.281 -0.177 -0.041 0.721 1.000 -0.196 0.223 -0.179
physician_pc 0.172 -0.137 0.157 -0.227 -0.367 -0.196 1.000 -0.214 0.111
pers_o -0.111 0.303 -0.391 0.363 0.458 0.223 -0.214 1.000 -0.056
pers_c -0.096 -0.041 0.067 0.010 -0.126 -0.179 0.111 -0.056 1.000
pers_e -0.068 0.071 0.029 -0.001 0.147 0.140 -0.049 -0.086 0.155
pers_a -0.170 -0.054 0.117 -0.072 -0.149 -0.222 0.115 -0.162 0.654
pers_n 0.065 -0.126 0.183 -0.177 -0.340 -0.215 0.112 -0.226 -0.405
loess -0.065 0.317 -0.200 0.154 0.367 0.306 -0.151 0.296 -0.216
socdist_single_tile_clean -0.064 0.316 -0.200 0.153 0.364 0.302 -0.149 0.295 -0.215
pers_e pers_a pers_n loess socdist_single_tile_clean
rate_day 0.049 0.072 -0.120 0.175 0.173
socdist_tiles -0.079 0.103 0.133 -0.636 -0.633
socdist_single_tile -0.036 -0.257 0.126 0.997 0.997
airport_distance -0.124 -0.100 0.049 -0.170 -0.170
republican -0.080 -0.086 0.308 -0.310 -0.309
medage -0.098 -0.072 0.247 0.263 0.265
male -0.068 -0.170 0.065 -0.065 -0.064
popdens 0.071 -0.054 -0.126 0.317 0.316
manufact 0.029 0.117 0.183 -0.200 -0.200
tourism -0.001 -0.072 -0.177 0.154 0.153
academics 0.147 -0.149 -0.340 0.367 0.364
medinc 0.140 -0.222 -0.215 0.306 0.302
physician_pc -0.049 0.115 0.112 -0.151 -0.149
pers_o -0.086 -0.162 -0.226 0.296 0.295
pers_c 0.155 0.654 -0.405 -0.216 -0.215
pers_e 1.000 0.244 -0.396 -0.038 -0.039
pers_a 0.244 1.000 -0.393 -0.243 -0.242
pers_n -0.396 -0.393 1.000 0.120 0.122
loess -0.038 -0.243 0.120 1.000 1.000
socdist_single_tile_clean -0.039 -0.242 0.122 1.000 1.000
# function calculates all relevant models
run_models <- function(y, lvl1_x, lvl2_x, lvl2_id, data, ctrls=F){
# subset data
data = data %>%
dplyr::select(all_of(y), all_of(lvl1_x), all_of(lvl2_x), all_of(lvl2_id),
popdens, rate_day, all_of(y))
data = data %>%
dplyr::rename(y = all_of(y),
lvl1_x = all_of(lvl1_x),
lvl2_x = all_of(lvl2_x),
lvl2_id = all_of(lvl2_id)
)
# configure optimization procedure
ctrl_config <- lmeControl(opt = 'optim', maxIter = 100, msMaxIter = 100)
# baseline
baseline <- lme(fixed = y ~ 1, random = ~ 1 | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# random intercept fixed slope
random_intercept <- lme(fixed = y ~ lvl1_x + lvl2_x,
random = ~ 1 | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# random intercept random slope
random_slope <- lme(fixed = y ~ lvl1_x + lvl2_x,
random = ~ lvl1_x | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# cross level interaction
interaction <- lme(fixed = y ~ lvl1_x * lvl2_x,
random = ~ lvl1_x | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# create list with results
results <- list('baseline' = baseline,
"random_intercept" = random_intercept,
"random_slope" = random_slope,
"interaction" = interaction)
if (ctrls == 'dem' | ctrls == 'prev'){
# random intercept random slope
random_slope_ctrl_dem <- lme(fixed = y ~ lvl1_x + lvl2_x + popdens,
random = ~ lvl1_x | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# cross level interaction
interaction_ctrl_main_dem <- lme(fixed = y ~ lvl1_x * lvl2_x + popdens,
random = ~ lvl1_x | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# cross level interaction
interaction_ctrl_int_dem <- lme(fixed = y ~ lvl1_x * lvl2_x + lvl1_x * popdens,
random = ~ lvl1_x | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# create list with results
results <- list('baseline' = baseline,
"random_intercept" = random_intercept,
"random_slope" = random_slope,
"interaction" = interaction,
"random_slope_ctrl_dem" = random_slope_ctrl_dem,
"interaction_ctrl_main_dem" = interaction_ctrl_main_dem,
"interaction_ctrl_int_dem" = interaction_ctrl_int_dem)
}
if (ctrls == 'prev'){
# random intercept random slope
random_slope_ctrl_prev <- lme(fixed = y ~ lvl1_x + lvl2_x + popdens + rate_day,
random = ~ lvl1_x + rate_day | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# cross level interaction
interaction_ctrl_main_prev <- lme(fixed = y ~ lvl1_x * lvl2_x + popdens + rate_day,
random = ~ lvl1_x | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# cross level interaction
interaction_ctrl_int_prev<- lme(fixed = y ~ lvl1_x * lvl2_x + lvl1_x * popdens + rate_day,
random = ~ lvl1_x + rate_day | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# create list with results
results <- list('baseline' = baseline,
"random_intercept" = random_intercept,
"random_slope" = random_slope,
"interaction" = interaction,
"random_slope_ctrl_dem" = random_slope_ctrl_dem,
"interaction_ctrl_main_dem" = interaction_ctrl_main_dem,
"interaction_ctrl_int_dem" = interaction_ctrl_int_dem,
"random_slope_ctrl_prev" = random_slope_ctrl_prev,
"interaction_ctrl_main_prev" = interaction_ctrl_main_prev,
"interaction_ctrl_int_prev" = interaction_ctrl_int_prev)
}
if(ctrls == 'exp'){
# random intercept random slope
random_slope_exp <- lme(fixed = y ~ (lvl1_x + I(lvl1_x^2)) + lvl2_x,
random = ~ (lvl1_x + I(lvl1_x^2)) | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# cross level interaction
interaction_exp <- lme(fixed = y ~ (lvl1_x + I(lvl1_x^2)) * lvl2_x,
random = ~ (lvl1_x + I(lvl1_x^2)) | lvl2_id,
data = data,
correlation = corAR1(),
control = ctrl_config,
method = 'ML')
# create list with results
results <- list('baseline' = baseline,
"random_intercept" = random_intercept,
"random_slope" = random_slope,
"interaction" = interaction,
"random_slope_exp" = random_slope_exp,
"interaction_exp" = interaction_exp)
}
return(results)
}
# extracts table with coefficients and tests statistics
extract_results <- function(models) {
models_summary <- models %>%
map(summary) %>%
map("tTable") %>%
map(as.data.frame) %>%
map(round, 10)
# %>% map(~ .[str_detect(rownames(.), 'Inter|lvl'),])
return(models_summary)
}
compare_models <- function(models) {
mdl_names <- models %>% names()
str = ''
for (i in mdl_names){
mdl_str <- paste('models$', i, sep = '')
if(i == 'baseline'){
str <- mdl_str
}else{
str <- paste(str, mdl_str, sep=', ')
}
}
anova_str <- paste0('anova(', str, ')')
mdl_comp <- eval(parse(text=anova_str))
rownames(mdl_comp) = mdl_names
return(mdl_comp)
}
lvl2_scaled <- df_us %>%
select(-time, -date, -county_name, -rate_day,
-socdist_tiles, -socdist_single_tile, -socdist_single_tile_clean, -loess) %>%
distinct() %>%
mutate_at(vars(-county_fips), scale)
lvl1_scaled <- df_us %>%
select(county_fips, time, rate_day, socdist_single_tile, socdist_single_tile_clean) %>%
mutate_at(vars(-county_fips, -time), scale)
df_us_scaled <- plyr::join(lvl1_scaled, lvl2_scaled, by = 'county_fips')
df_us_scaled_prev <- df_us_scaled %>% filter(time > 20 & time <= 50)
df_us_scaled_socdist <- df_us_scaled %>% filter(time <= 30)
models_o_covid <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_o',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'dem')
extract_results(models_o_covid)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_ctrl_dem
$interaction_ctrl_main_dem
$interaction_ctrl_int_dem
compare_models(models_o_covid)
NA
models_c_covid <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_c',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'dem')
extract_results(models_c_covid)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_ctrl_dem
$interaction_ctrl_main_dem
$interaction_ctrl_int_dem
compare_models(models_c_covid)
NA
NA
models_e_covid <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_e',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'dem')
extract_results(models_e_covid)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_ctrl_dem
$interaction_ctrl_main_dem
$interaction_ctrl_int_dem
compare_models(models_e_covid)
NA
NA
models_a_covid <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_a',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'dem')
extract_results(models_a_covid)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_ctrl_dem
$interaction_ctrl_main_dem
$interaction_ctrl_int_dem
compare_models(models_a_covid)
NA
NA
models_n_covid <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_n',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'dem')
extract_results(models_n_covid)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_ctrl_dem
$interaction_ctrl_main_dem
$interaction_ctrl_int_dem
compare_models(models_n_covid)
NA
NA
summary_table <- function(models, dv_name, prev=F){
temp_df_ctrl_main <- NULL
temp_df_ctrl_int <- NULL
temp_df_ctrl_int_prev <- NULL
for (i in models){
results <- i %>% extract_results()
results_ctrl_main <- results$interaction_ctrl_main_dem['lvl1_x:lvl2_x',]
temp_df_ctrl_main <- temp_df_ctrl_main %>% rbind(results_ctrl_main)
results_ctrl_int <- results$interaction_ctrl_int_dem['lvl1_x:lvl2_x',]
temp_df_ctrl_int <- temp_df_ctrl_int %>% rbind(results_ctrl_int)
if(prev){
results_ctrl_int_prev <- results$interaction_ctrl_int_prev['lvl1_x:lvl2_x',]
temp_df_ctrl_int_prev <- temp_df_ctrl_int_prev %>% rbind(results_ctrl_int_prev)
}
}
names_ctrl_main <- paste0(dv_name, '~', c('o', 'c', 'e', 'a', 'n'), '*time', '_crtl_popdens')
rownames(temp_df_ctrl_main) <- names_ctrl_main
names_ctrl_int <- paste0(dv_name, '~', c('o', 'c', 'e', 'a', 'n'), '*time', '_crtl_popdens*time')
rownames(temp_df_ctrl_int) <- names_ctrl_int
if(prev){
names_ctrl_int_prev <- paste0(dv_name, '~', c('o', 'c', 'e', 'a', 'n'), '*time', '_crtl_popdens*time_prev')
rownames(temp_df_ctrl_int_prev) <- names_ctrl_int_prev
sum_tab <- rbind(temp_df_ctrl_main, temp_df_ctrl_int, temp_df_ctrl_int_prev) %>% round(4)
}else{
sum_tab <- rbind(temp_df_ctrl_main, temp_df_ctrl_int) %>% round(4)
}
return(sum_tab)
}
# slope prevalence
df_us_slope_prev <- df_us_scaled_prev %>% split(.$county) %>%
map(~ lm(rate_day ~ time, data = .)) %>%
map(coef) %>%
map_dbl('time') %>%
as.data.frame() %>%
rownames_to_column('county_fips') %>%
rename(slope_prev = '.')
df_us_slope_prev <- df_us_scaled_prev %>%
select(-time, -rate_day, -socdist_single_tile, -socdist_single_tile_clean) %>%
distinct() %>%
mutate(county_fips = as.character(county_fips)) %>%
inner_join(df_us_slope_prev, by = 'county_fips') %>%
drop_na()
# slope social distancing
df_us_slope_socdist <- df_us_scaled_socdist %>% split(.$county) %>%
map(~ lm(socdist_single_tile_clean ~ time, data = .)) %>%
map(coef) %>%
map_dbl('time') %>%
as.data.frame() %>%
rownames_to_column('county_fips') %>%
rename(slope_socdist = '.')
df_us_slope_socdist <- df_us_scaled_socdist %>%
select(-time, -rate_day, -socdist_single_tile, -socdist_single_tile_clean) %>%
distinct() %>%
mutate(county_fips = as.character(county_fips)) %>%
inner_join(df_us_slope_socdist, by = 'county_fips') %>%
drop_na()
df_us_slope_prev %>% ggplot(aes(slope_prev)) + geom_histogram(bins = 100)
df_us_slope_socdist %>% ggplot(aes(slope_socdist)) + geom_histogram(bins = 100)
ctrls <- cforest_unbiased(ntree=500, mtry=5)
crf_o_fit_prev <- cforest(slope_prev ~ pers_o + airport_distance + republican +
medage + male + popdens + manufact +
tourism + academics + medinc + physician_pc,
df_us_slope_prev[-1],
controls = ctrls)
crf_o_varimp_prev <- varimp(crf_o_fit_prev, nperm = 1)
crf_o_varimp_cond_prev <- varimp(crf_o_fit_prev, conditional = T, nperm = 1)
crf_o_varimp_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
crf_o_varimp_cond_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
ctrls <- cforest_unbiased(ntree=500, mtry=5)
crf_c_fit_prev <- cforest(slope_prev ~ pers_c + airport_distance + republican +
medage + male + popdens + manufact +
tourism + academics + medinc + physician_pc,
df_us_slope_prev[-1],
controls = ctrls)
crf_c_varimp_prev <- varimp(crf_c_fit_prev, nperm = 1)
crf_c_varimp_cond_prev <- varimp(crf_c_fit_prev, conditional = T, nperm = 1)
crf_c_varimp_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
crf_c_varimp_cond_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
ctrls <- cforest_unbiased(ntree=500, mtry=5)
crf_e_fit_prev <- cforest(slope_prev ~ pers_e + airport_distance + republican +
medage + male + popdens + manufact +
tourism + academics + medinc + physician_pc,
df_us_slope_prev[-1],
controls = ctrls)
crf_e_varimp_prev <- varimp(crf_e_fit_prev, nperm = 1)
crf_e_varimp_cond_prev <- varimp(crf_e_fit_prev, conditional = T, nperm = 1)
crf_e_varimp_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
crf_e_varimp_cond_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
ctrls <- cforest_unbiased(ntree=500, mtry=5)
crf_a_fit_prev <- cforest(slope_prev ~ pers_a + airport_distance + republican +
medage + male + popdens + manufact +
tourism + academics + medinc + physician_pc,
df_us_slope_prev[-1],
controls = ctrls)
crf_a_varimp_prev <- varimp(crf_a_fit_prev, nperm = 1)
crf_a_varimp_cond_prev <- varimp(crf_a_fit_prev, conditional = T, nperm = 1)
crf_a_varimp_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
crf_a_varimp_cond_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
ctrls <- cforest_unbiased(ntree=500, mtry=5)
crf_n_fit_prev <- cforest(slope_prev ~ pers_n + airport_distance + republican +
medage + male + popdens + manufact +
tourism + academics + medinc + physician_pc,
df_us_slope_prev[-1],
controls = ctrls)
crf_n_varimp_prev <- varimp(crf_n_fit_prev, nperm = 1)
crf_n_varimp_cond_prev <- varimp(crf_n_fit_prev, conditional = T, nperm = 1)
crf_n_varimp_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
crf_n_varimp_cond_prev %>% as.data.frame() %>% rownames_to_column('variable') %>%
ggplot(aes(x=variable, y=.)) +
geom_bar(stat = 'identity') +
theme(axis.text.x = element_text(angle = 90))
lm_slope_prev_pers <- lm(slope_prev ~ pers_o + pers_c + pers_e + pers_a + pers_n,
data = df_us_slope_prev)
lm_slope_prev_pers %>% summary()
Call:
lm(formula = slope_prev ~ pers_o + pers_c + pers_e + pers_a +
pers_n, data = df_us_slope_prev)
Residuals:
Min 1Q Median 3Q Max
-0.04976 -0.01856 -0.01099 0.00061 0.65628
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0238571 0.0009781 24.391 < 2e-16 ***
pers_o 0.0062216 0.0010623 5.857 5.38e-09 ***
pers_c -0.0014123 0.0013288 -1.063 0.28799
pers_e 0.0007142 0.0010922 0.654 0.51325
pers_a 0.0046956 0.0013572 3.460 0.00055 ***
pers_n -0.0027589 0.0012396 -2.226 0.02613 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.04746 on 2348 degrees of freedom
Multiple R-squared: 0.03048, Adjusted R-squared: 0.02841
F-statistic: 14.76 on 5 and 2348 DF, p-value: 2.785e-14
lm_slope_socdist_pers <- lm(slope_socdist ~ pers_o + pers_c + pers_e + pers_a + pers_n,
data = df_us_slope_socdist)
lm_slope_socdist_pers %>% summary()
Call:
lm(formula = slope_socdist ~ pers_o + pers_c + pers_e + pers_a +
pers_n, data = df_us_slope_socdist)
Residuals:
Min 1Q Median 3Q Max
-0.087141 -0.017732 -0.002132 0.015939 0.117901
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0890251 0.0005317 167.419 < 2e-16 ***
pers_o 0.0098530 0.0005775 17.061 < 2e-16 ***
pers_c -0.0046798 0.0007224 -6.478 1.13e-10 ***
pers_e 0.0036028 0.0005938 6.067 1.51e-09 ***
pers_a -0.0042767 0.0007378 -5.796 7.69e-09 ***
pers_n -0.0022425 0.0006739 -3.328 0.000889 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.0258 on 2348 degrees of freedom
Multiple R-squared: 0.2149, Adjusted R-squared: 0.2132
F-statistic: 128.5 on 5 and 2348 DF, p-value: < 2.2e-16
lm_slope_prev_pers <- lm(slope_prev ~ pers_o + pers_c + pers_e + pers_a + pers_n +
airport_distance + republican + medage + male + popdens +
manufact + tourism + academics + medinc + physician_pc,
data = df_us_slope_prev)
lm_slope_prev_pers %>% summary()
Call:
lm(formula = slope_prev ~ pers_o + pers_c + pers_e + pers_a +
pers_n + airport_distance + republican + medage + male +
popdens + manufact + tourism + academics + medinc + physician_pc,
data = df_us_slope_prev)
Residuals:
Min 1Q Median 3Q Max
-0.25258 -0.01651 -0.00794 0.00215 0.61997
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0238571 0.0009252 25.785 < 2e-16 ***
pers_o 0.0018446 0.0011817 1.561 0.11867
pers_c 0.0003194 0.0012802 0.250 0.80299
pers_e -0.0006724 0.0010511 -0.640 0.52246
pers_a 0.0049324 0.0013486 3.657 0.00026 ***
pers_n 0.0003769 0.0012885 0.293 0.76990
airport_distance -0.0003157 0.0010100 -0.313 0.75462
republican -0.0067393 0.0011283 -5.973 2.69e-09 ***
medage -0.0023197 0.0009878 -2.348 0.01894 *
male -0.0030689 0.0010206 -3.007 0.00267 **
popdens 0.0109511 0.0010752 10.185 < 2e-16 ***
manufact -0.0025844 0.0011141 -2.320 0.02045 *
tourism -0.0011665 0.0011061 -1.055 0.29174
academics -0.0081414 0.0018624 -4.372 1.29e-05 ***
medinc 0.0100963 0.0015427 6.545 7.30e-11 ***
physician_pc 0.0002815 0.0010233 0.275 0.78329
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.04489 on 2338 degrees of freedom
Multiple R-squared: 0.1361, Adjusted R-squared: 0.1306
F-statistic: 24.56 on 15 and 2338 DF, p-value: < 2.2e-16
lm_slope_socdist_pers <- lm(slope_socdist ~ pers_o + pers_c + pers_e + pers_a + pers_n +
airport_distance + republican + medage + male + popdens +
manufact + tourism + academics + medinc + physician_pc,
data = df_us_slope_socdist)
lm_slope_socdist_pers %>% summary()
Call:
lm(formula = slope_socdist ~ pers_o + pers_c + pers_e + pers_a +
pers_n + airport_distance + republican + medage + male +
popdens + manufact + tourism + academics + medinc + physician_pc,
data = df_us_slope_socdist)
Residuals:
Min 1Q Median 3Q Max
-0.066827 -0.012101 -0.000994 0.011822 0.092012
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.903e-02 3.787e-04 235.069 < 2e-16 ***
pers_o 2.401e-03 4.837e-04 4.965 7.37e-07 ***
pers_c -1.505e-03 5.240e-04 -2.872 0.00411 **
pers_e 1.168e-03 4.303e-04 2.715 0.00667 **
pers_a -1.429e-03 5.520e-04 -2.588 0.00970 **
pers_n 4.506e-03 5.274e-04 8.543 < 2e-16 ***
airport_distance -2.103e-03 4.134e-04 -5.087 3.92e-07 ***
republican -8.400e-03 4.618e-04 -18.188 < 2e-16 ***
medage 2.352e-03 4.043e-04 5.816 6.85e-09 ***
male 5.781e-04 4.178e-04 1.384 0.16655
popdens 3.372e-03 4.401e-04 7.662 2.67e-14 ***
manufact 1.231e-03 4.560e-04 2.700 0.00699 **
tourism 3.117e-03 4.528e-04 6.884 7.43e-12 ***
academics 4.986e-03 7.623e-04 6.541 7.47e-11 ***
medinc 1.148e-02 6.314e-04 18.175 < 2e-16 ***
physician_pc -3.975e-05 4.189e-04 -0.095 0.92441
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.01837 on 2338 degrees of freedom
Multiple R-squared: 0.6034, Adjusted R-squared: 0.6009
F-statistic: 237.2 on 15 and 2338 DF, p-value: < 2.2e-16
# keep only counties with full data
fips_complete <- df_us_scaled %>%
group_by(county_fips) %>%
summarize(n = n()) %>%
filter(n==max(.$n)) %>%
.$county_fips
# run changepoint analysis
df_us_prev_cpt_results <- df_us_scaled %>% select(county_fips, rate_day) %>%
filter(county_fips %in% fips_complete) %>%
split(.$county_fips) %>%
map(~ cpt.meanvar(as.vector(.$rate_day),
class=TRUE,
param.estimates=TRUE,
Q=1))
# calculate change point
df_us_prev_cpt_day <- df_us_prev_cpt_results %>%
map(cpts) %>%
unlist() %>%
as.data.frame() %>%
rename(cpt_day_prev = '.') %>%
rownames_to_column('county_fips')
# calculate mean differences
df_us_prev_cpt_mean_diff <- df_us_prev_cpt_results %>%
map(param.est) %>%
map(~ .$mean) %>%
map(~ .[2]-.[1]) %>%
unlist() %>%
as.data.frame() %>%
rename(mean_diff_prev = '.') %>%
rownames_to_column('county_fips')
# calculate varaince differences
df_us_prev_cpt_var_diff <- df_us_prev_cpt_results %>%
map(param.est) %>%
map(~ .$variance) %>%
map(~ .[2]-.[1]) %>%
unlist() %>%
as.data.frame() %>%
rename(var_diff_prev = '.') %>%
rownames_to_column('county_fips')
# merge new variables
df_us_cpt_prev <- df_us_scaled %>%
select(-time, -rate_day, -socdist_single_tile, -socdist_single_tile_clean) %>%
distinct() %>%
mutate(county_fips = as.character(county_fips)) %>%
left_join(df_us_prev_cpt_day, by='county_fips') %>%
left_join(df_us_prev_cpt_mean_diff, by='county_fips') %>%
left_join(df_us_prev_cpt_var_diff, by='county_fips')
df_us_cpt_prev %>% select(cpt_day_prev) %>% map(hist)
$cpt_day_prev
$breaks
[1] 5 10 15 20 25 30 35 40 45 50 55 60
$counts
[1] 72 245 411 706 179 303 177 101 34 29 14
$density
[1] 0.006340819 0.021576398 0.036195509 0.062175253 0.015763981 0.026684280 0.015587847 0.008894760 0.002994276
[10] 0.002553941 0.001232937
$mids
[1] 7.5 12.5 17.5 22.5 27.5 32.5 37.5 42.5 47.5 52.5 57.5
$xname
[1] ".x[[i]]"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
df_us_cpt_prev %>% select(mean_diff_prev) %>% map(hist)
$mean_diff_prev
$breaks
[1] -1 0 1 2 3 4 5 6 7 8 9 10 11
$counts
[1] 3 2056 132 38 11 10 7 5 2 2 4 1
$density
[1] 0.0013210040 0.9053280493 0.0581241744 0.0167327169 0.0048436812 0.0044033465 0.0030823426 0.0022016733 0.0008806693
[10] 0.0008806693 0.0017613386 0.0004403347
$mids
[1] -0.5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5
$xname
[1] ".x[[i]]"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
df_us_cpt_prev %>% select(var_diff_prev) %>% map(hist)
$var_diff_prev
$breaks
[1] -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130
$counts
[1] 48 2192 12 8 4 1 1 1 2 0 1 0 0 1
$density
[1] 2.113606e-03 9.652136e-02 5.284016e-04 3.522677e-04 1.761339e-04 4.403347e-05 4.403347e-05 4.403347e-05 8.806693e-05
[10] 0.000000e+00 4.403347e-05 0.000000e+00 0.000000e+00 4.403347e-05
$mids
[1] -5 5 15 25 35 45 55 65 75 85 95 105 115 125
$xname
[1] ".x[[i]]"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
df_us_cpt_prev %>% dim()
[1] 2354 19
df_us_cpt_prev %>% drop_na() %>% dim()
[1] 2271 19
for(i in head(df_us_prev_cpt_results,18)){
plot(i)
}
NA
lm_cpr_prev_pers <- lm(cpt_day_prev ~ pers_o + pers_c + pers_e + pers_a + pers_n,
data = df_us_cpt_prev_socdist)
lm_cpr_prev_pers %>% summary()
Call:
lm(formula = cpt_day_prev ~ pers_o + pers_c + pers_e + pers_a +
pers_n, data = df_us_cpt_prev_socdist)
Residuals:
Min 1Q Median 3Q Max
-25.983 -6.334 -1.311 4.562 45.235
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 25.16757 0.18974 132.643 < 2e-16 ***
pers_o -3.18568 0.20844 -15.283 < 2e-16 ***
pers_c 0.15689 0.26060 0.602 0.547216
pers_e -0.74089 0.21574 -3.434 0.000605 ***
pers_a 0.05043 0.26716 0.189 0.850296
pers_n 1.71404 0.24456 7.009 3.16e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 9.039 on 2265 degrees of freedom
(83 observations deleted due to missingness)
Multiple R-squared: 0.165, Adjusted R-squared: 0.1631
F-statistic: 89.49 on 5 and 2265 DF, p-value: < 2.2e-16
lm_cpt_socdist_pers <- lm(cpt_day_socdist ~ pers_o + pers_c + pers_e + pers_a + pers_n,
data = df_us_cpt_prev_socdist)
lm_cpt_socdist_pers %>% summary()
Call:
lm(formula = cpt_day_socdist ~ pers_o + pers_c + pers_e + pers_a +
pers_n, data = df_us_cpt_prev_socdist)
Residuals:
Min 1Q Median 3Q Max
-12.015 -3.127 0.280 2.588 45.256
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 15.35217 0.06752 227.366 < 2e-16 ***
pers_o 0.27316 0.07333 3.725 0.0002 ***
pers_c 0.12880 0.09174 1.404 0.1604
pers_e -0.12366 0.07540 -1.640 0.1011
pers_a 0.15698 0.09369 1.675 0.0940 .
pers_n -0.33375 0.08557 -3.900 9.88e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.276 on 2348 degrees of freedom
Multiple R-squared: 0.02963, Adjusted R-squared: 0.02756
F-statistic: 14.34 on 5 and 2348 DF, p-value: 7.46e-14
lm_cpt_prev_pers <- lm(cpt_day_prev ~ pers_o + pers_c + pers_e + pers_a + pers_n +
airport_distance + republican + medage + male + popdens +
manufact + tourism + academics + medinc + physician_pc,
data = df_us_cpt_prev_socdist)
lm_cpt_prev_pers %>% summary()
Call:
lm(formula = cpt_day_prev ~ pers_o + pers_c + pers_e + pers_a +
pers_n + airport_distance + republican + medage + male +
popdens + manufact + tourism + academics + medinc + physician_pc,
data = df_us_cpt_prev_socdist)
Residuals:
Min 1Q Median 3Q Max
-22.083 -5.327 -1.200 4.136 35.617
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 25.29704 0.16734 151.174 < 2e-16 ***
pers_o -1.63993 0.21671 -7.568 5.51e-14 ***
pers_c -0.56105 0.23371 -2.401 0.01645 *
pers_e -0.04365 0.19394 -0.225 0.82196
pers_a -0.32564 0.24839 -1.311 0.19000
pers_n 0.04299 0.23672 0.182 0.85590
airport_distance 1.43258 0.18667 7.674 2.46e-14 ***
republican 1.03176 0.20387 5.061 4.51e-07 ***
medage 1.79449 0.17925 10.011 < 2e-16 ***
male 0.93638 0.18582 5.039 5.05e-07 ***
popdens 0.30541 0.19128 1.597 0.11047
manufact -0.10909 0.20215 -0.540 0.58950
tourism -0.74632 0.20100 -3.713 0.00021 ***
academics -1.02735 0.33531 -3.064 0.00221 **
medinc -2.10327 0.27916 -7.534 7.06e-14 ***
physician_pc 0.90426 0.18442 4.903 1.01e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7.967 on 2255 degrees of freedom
(83 observations deleted due to missingness)
Multiple R-squared: 0.3543, Adjusted R-squared: 0.35
F-statistic: 82.47 on 15 and 2255 DF, p-value: < 2.2e-16
lm_cpt_socdist_pers <- lm(cpt_day_socdist ~ pers_o + pers_c + pers_e + pers_a + pers_n +
airport_distance + republican + medage + male + popdens +
manufact + tourism + academics + medinc + physician_pc,
data = df_us_cpt_prev_socdist)
lm_cpt_socdist_pers %>% summary()
Call:
lm(formula = cpt_day_socdist ~ pers_o + pers_c + pers_e + pers_a +
pers_n + airport_distance + republican + medage + male +
popdens + manufact + tourism + academics + medinc + physician_pc,
data = df_us_cpt_prev_socdist)
Residuals:
Min 1Q Median 3Q Max
-11.950 -2.950 0.227 2.481 45.278
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 15.352167 0.066954 229.295 < 2e-16 ***
pers_o 0.191294 0.085515 2.237 0.02538 *
pers_c 0.079700 0.092637 0.860 0.38969
pers_e -0.118342 0.076064 -1.556 0.11988
pers_a 0.134201 0.097590 1.375 0.16921
pers_n -0.377922 0.093244 -4.053 5.22e-05 ***
airport_distance -0.134089 0.073088 -1.835 0.06669 .
republican -0.001739 0.081650 -0.021 0.98301
medage -0.085162 0.071481 -1.191 0.23362
male 0.019984 0.073857 0.271 0.78675
popdens 0.342335 0.077808 4.400 1.13e-05 ***
manufact -0.249618 0.080622 -3.096 0.00198 **
tourism 0.120821 0.080045 1.509 0.13133
academics -0.380811 0.134768 -2.826 0.00476 **
medinc 0.026925 0.111634 0.241 0.80943
physician_pc 0.108887 0.074052 1.470 0.14159
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.248 on 2338 degrees of freedom
Multiple R-squared: 0.04995, Adjusted R-squared: 0.04386
F-statistic: 8.196 on 15 and 2338 DF, p-value: < 2.2e-16
models_o_covid_exp <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_o',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'exp')
extract_results(models_o_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_o_covid_exp)
NA
models_c_covid_exp <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_c',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'exp')
extract_results(models_c_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_c_covid_exp)
NA
models_e_covid_exp <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_e',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'exp')
extract_results(models_e_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_e_covid_exp)
NA
models_a_covid_exp <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_a',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'exp')
extract_results(models_a_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_a_covid_exp)
NA
models_n_covid_exp <-run_models(y = 'rate_day',
lvl1_x = 'time',
lvl2_x = 'pers_n',
lvl2_id = 'county_fips',
data = df_us_scaled_prev,
ctrls = 'exp')
extract_results(models_n_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_n_covid_exp)
NA
models_o_covid_exp <-run_models(y = 'socdist_single_tile_clean',
lvl1_x = 'time',
lvl2_x = 'pers_o',
lvl2_id = 'county_fips',
data = df_us_scaled_socdist,
ctrls = 'exp')
extract_results(models_o_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_o_covid_exp)
NA
models_c_covid_exp <-run_models(y = 'socdist_single_tile_clean',
lvl1_x = 'time',
lvl2_x = 'pers_c',
lvl2_id = 'county_fips',
data = df_us_scaled_socdist,
ctrls = 'exp')
extract_results(models_c_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_c_covid_exp)
NA
models_e_covid_exp <-run_models(y = 'socdist_single_tile_clean',
lvl1_x = 'time',
lvl2_x = 'pers_e',
lvl2_id = 'county_fips',
data = df_us_scaled_socdist,
ctrls = 'exp')
extract_results(models_e_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_e_covid_exp)
NA
models_a_covid_exp <-run_models(y = 'socdist_single_tile_clean',
lvl1_x = 'time',
lvl2_x = 'pers_a',
lvl2_id = 'county_fips',
data = df_us_scaled_socdist,
ctrls = 'exp')
extract_results(models_a_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_a_covid_exp)
NA
models_n_covid_exp <-run_models(y = 'socdist_single_tile_clean',
lvl1_x = 'time',
lvl2_x = 'pers_n',
lvl2_id = 'county_fips',
data = df_us_scaled_socdist,
ctrls = 'exp')
extract_results(models_n_covid_exp)
$baseline
$random_intercept
$random_slope
$interaction
$random_slope_exp
$interaction_exp
compare_models(models_n_covid_exp)
NA
Social distancing data unacast